A disk array system in which storage areas are configured from a plurality of HDD and SSD and the like is used as a subsystem of a mainframe or open server. In a system of this kind, the construction of a RAID environment is supported so that data is not lost even when a fault is generated in a drive.
For example, if RAID5 is constructed from four drives, a parity P1 is generated from three stripe data D1 and is stored by being divided between four drives. Further, although a parity P2 is generated from three stripe data D2 and stored by being divided between four drives, P2 is stored in a different drive from P1 so that parities are not concentrated in a single drive. In the case of this example, data can be recovered even when a fault is generated in a single drive. However, this does not cater to cases where a fault is generated in two or more drives (double fault). Meanwhile, RAID6 generates two parities. In this case, a double fault can be dealt with.
In the case of RAID5, at the time of a data update, pre-update data and parities are acquired from a drive in order to generate parities. In order to avoid waiting for the disk rotation due to this access, PTL1 discloses a technology for generating RAID5 parities asynchronously to the disk I/O.